home *** CD-ROM | disk | FTP | other *** search
/ Libris Britannia 4 / science library(b).zip / science library(b) / PROGRAMM / CC_C / 0335.ZIP / BOSS.ARC / BOSS.DOC next >
Text File  |  1986-05-28  |  31KB  |  1,336 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7.  
  8.  
  9.  
  10.  
  11.  
  12.  
  13.  
  14.  
  15.  
  16.  
  17.  
  18.                          The Window BOSS
  19.                        by Phil Mongelluzzo
  20.  
  21.                        Revision:  05.08.86
  22.  
  23.  
  24.  
  25.  
  26.                      Star Guidance Consulting
  27.                          273 Windy Drive
  28.                    Waterbury, Connecticut 06705
  29.  
  30.                           (203) 574-2449
  31.  
  32.  
  33.  
  34.  
  35.  
  36.  
  37.  
  38.  
  39.      Copyright (c) 1984, 1985, 1986 by Philip A. Mongelluzzo
  40.                        All Rights Reserved.
  41.  
  42.  
  43.  
  44.  
  45.  
  46.  
  47. The Window BOSS distribution diskette,  containing a copy of this
  48. summary manual  may  be freely copied and shared,  but printed
  49. copies  of this document may not be copied in any way without
  50. permission  in writing from Star Guidance Consulting.  Thank you.
  51.  
  52. Introduction
  53.  
  54. The Window BOSS is one of the most powerful and cost-effective
  55. products available to enhance and accelerate the development of
  56. system and applications programs.  The BOSS will let you create
  57. programs that have the same look and feel as top sellers like
  58. Lotus 1-2-3, Sidekick, dBASE III, and Framework!  Pop-up windows,
  59. pull down menus, status lines, and in context on-line help
  60. functions can be easily implemented.  Your applications can drag
  61. windows around the screen and automatically sense the video card
  62. installed.  All of this without snow, flicker, or delay!
  63.  
  64. Registered users can take advantage of our "Source Plus" policy
  65. that provides meticulously documented source code and one year of
  66. free updates.
  67.  
  68. Technical Nitty Gritties
  69.  
  70. The Window BOSS supports PC/MSDOS for the IBM PC/XT/AT and
  71. compatibles.   However, you'll need one of the following
  72. compilers in order to take advantage of the state-of-the-art
  73. techniques available from the BOSS:
  74.  
  75.         Lattice C, Microsoft C, Computer Innovations CI86
  76.  
  77. The BOSS is written in "C" and assembly.  You'll need the
  78. Microsoft Assembler MASM to compile any local changes to the
  79. assembler source.
  80.  
  81.   Stats:
  82.  
  83.      Maximum windows:    limited only by compiler and memory
  84.      Maximum window:     full screen
  85.      Minimum window:     1 row 1 column (borderless)
  86.                          3 rows 3 columns (framed)
  87.  
  88.   Operation:
  89.  
  90.      Simply include the library at link time and invoke the
  91.      function desired.
  92.  
  93.  
  94. User Supported Software
  95.  
  96. Star Guidance Consulting distributes The Window BOSS with a
  97. unique marketing approach called Shareware.  The diskette with
  98. the programs and manual may be freely copied and shared.  It is
  99. also available from Star Guidance for $15.00 to cover the
  100. diskette, postage and handling.  We ask you to help us distribute
  101. The Window BOSS by sharing unmodified copies of the diskette with
  102. others.  We also encourage you to register your copy for $50.00.
  103. You'll find a registration form at the end of this manual.  Thank
  104. you for your support and enjoy the BOSS.
  105.  
  106. Registering
  107.  
  108. Shareware is a term for software that can be freely copied and
  109. shared.  The term describes copyrighted software which the author
  110. supports and encourages people to copy and share.
  111.  
  112. Shareware is like public television:  the programming is freely
  113. distributed, but support from users is encouraged.  The concept
  114. is based on these principles:
  115.  
  116.   1. People need to try programs to see if they are useful.
  117.   2. Software authors can be supported directly by users.
  118.   3. Copying and networking of programs can be encouraged.
  119.  
  120. We encourage you to register your copy of The Window BOSS for
  121. $50.00.  Registration has a number of benefits to you:
  122.  
  123.   1. Serialized diskette containing all source code for a
  124.      specific compiler.
  125.   2. Telephone Support (you pay phone charges) and free updates
  126.      for 1 year.
  127.   3. Thanks from us for your support and encouragement!
  128.  
  129.  
  130. The SHAREWARE Distribution Diskette
  131.  
  132.   The SHAREWARE diskette should contain the following files:
  133.  
  134.      ARC.DOC             <- Archive utility document
  135.      ARC.EXE             <- Archive utility
  136.      BOSS.ARC            <- The Window BOSS distribution archive.
  137.      BOSS.DOC            <- You are reading it
  138.  
  139.      After unarching BOSS.ARC:
  140.  
  141.        BOSSDEMO.C        <- Source to BOSSSDEMO
  142.        BOSSDEMO.EXE      <- DEMO Program
  143.        CCC86.BAT         <- C Compile Batch file - CI86 **
  144.        CCLAT.BAT         <- C Compile Batch file - Lattice **
  145.        MCCS.BAT          <- C Compile Batch file - Microsoft **
  146.        GENINDEX.C        <- Source to GENINDEX
  147.        HELP.C            <- Help system source
  148.        INTELC.HLP        <- Demo DATA file
  149.        INTELC.NDX        <- Index to Demo DATA file
  150.        LOADC86.BAT       <- Link Batch file - CI86
  151.        LOADLAT.BAT       <- Link Batch file - Lattice
  152.        LOADMS.BAT        <- Link Batch file - Microsoft
  153.        PEEK.C            <- Peek/Poke for Microsoft
  154.        POPUP.C           <- Popup menu source
  155.        SC86.LIB          <- Small memory library - CI86 ****
  156.        SLAT.LIB          <- Small memory library - Lattice ****
  157.        SMSC.LIB          <- Small memory library - Microsoft ****
  158.        WINDOWS.H         <- BOSS INCLUDE file
  159.  
  160.        *** These batch files were used to compile the demo
  161.        program and supporting functions. You should use these
  162.        batch files to compile "help.c" and "popup.c", or if you
  163.        are going to reconstruct BOSSDEMO.EXE.  There is no other
  164.        use for these BATch files.
  165.  
  166.        **** - Select one and rename to SWIN.LIB
  167.  
  168.  
  169. Installation/Linking
  170.  
  171.   By the numbers:
  172.  
  173.         1) MAKE A BACKUP!!!
  174.  
  175.         2) Use ARC to unarchive the various ARC files.
  176.         You'll need around 250k of disk space for all the files.
  177.  
  178.         3) Place the LIB(s) of choice on the disk(s) you
  179.         usually use with your "C" compiler.  The LIB files should
  180.         be on the same disk(s) that the "C" runtime libraries are
  181.         on.
  182.  
  183.   Linking:
  184.  
  185.         Simply specify the ?WIN.LIB file that corresponds to the
  186.         compiler/memory model you are using.  Don't forget to
  187.         include your compilers runtime library as well.  The
  188.         following examples should demonstrate the ease of linking.
  189.  
  190.           Lattice
  191.           link c+bossdemo+popup+help,bossdemo,,swin+lcm+lc
  192.  
  193.           Computer Innovations
  194.           link bossdemo+popup+help,bossdemo,,swin+c86s2s
  195.  
  196.           Microsoft
  197.           link bossdemo+popup+help+peek,bossdemo,,swin+slibc
  198.  
  199.  
  200. Sample program:
  201.  
  202.         #include <windows.h>
  203.         main()
  204.         {
  205.         WINDOWPTR w1;                   /* window handle */
  206.         int batrib;                     /* border atrib */
  207.         int watrib;                     /* window atrib */
  208.  
  209.         /*
  210.          * Set attributes:
  211.          *
  212.          *      border - blue/white box
  213.          *      window - white background/black letters
  214.          *
  215.         */
  216.  
  217.           batrib = v_setatr(BLUE,WHITE,0,0);
  218.           watrib = v_setatr(WHITE,BLACK,0,0);
  219.  
  220.         /*
  221.          * Open window at 0,0 - 15 cells wide and 3 cells high
  222.         */
  223.  
  224.           w1 = wn_open(0,0,0,15,3,watrib,batrib);
  225.           if(!w1) exit();
  226.  
  227.         /*
  228.          * Print the famous string and wait for key to be struck.
  229.          * Close window on key strike.. exit.
  230.         */
  231.  
  232.           wn_printf(w1,"Hello World...");
  233.           v_getch();
  234.           wn_close(w1);
  235.         }
  236.  
  237.         /* End */
  238.  
  239. General Notes
  240.  
  241.   Genindex, Help, and Popup are support programs and functions
  242.   for the BOSSDEMO program.  They can, however, serve as valuable
  243.   aids to you in the creation of help screens and popup menus.
  244.   The code is provided to demonstrate how the functions in The
  245.   Window BOSS can be used to create online help screens and popup
  246.   windows.
  247.  
  248.   Both the C and assembly functions make very heavy use of
  249.   pointers.  The code contains numerous checks to ensure that
  250.   memory outside of that in use by the program is not corrupted.
  251.   If you attempt to do something that would cause memory to be
  252.   corrupted an error message will appear and your program will
  253.   exit.  This message will usually say that a bad handle was
  254.   passed to some function.  You can, if you wish, remove this
  255.   check by modifying the "error" function in the windows.c file
  256.   (registered users only).
  257.  
  258.   Generally speaking, the members of the window control block (refer
  259.   to windows.h) should not be modified unless you are familiar with
  260.   how they are used by the various functions.
  261.  
  262.   Cursor management is perform via the window control block members
  263.   ccx, ccy, and synflg.
  264.  
  265.   Although the routines appear to support the multi page capabilities
  266.   of the IBM Color Card, actual support of this feature has not been
  267.   implemented.  Invoking the functions with references to video pages
  268.   other than 0 might produce interesting but undesired results.
  269.  
  270.   Two global symbols are defined and used by the various functions:
  271.  
  272.                              int wn_dmaflg;
  273.                              int wn_sbit;
  274.  
  275.     wn_dmaflg when TRUE enables direct writes into video ram.  This is
  276.     the default setting and should work in all cases.  Setting
  277.     wn_dmaflg to FALSE will disable these direct writes.
  278.  
  279.     wn_sbit controls the window refresh rate on systems with color
  280.     cards.  When set to SLOW (defined in windows.h) window displays
  281.     will appear to be painted on the screen rather than flash
  282.     displayed. Setting wn_sbit to FAST enables flash displays.
  283.     Setting wn_sbit to FAST may increase snow and flicker on color
  284.     systems.
  285.  
  286.  
  287. NAME
  288.  
  289. wn_open -- open window
  290.  
  291. USAGE
  292.  
  293.   wn = (WINDOWPTR)wn_open(page, row, col, width, height, atrib, batrib)
  294.   int page, row, col, width, height, atrib, batrib;
  295.  
  296.         page -  0 or 1000. 1000 opens a borderless page
  297.         row  -  row of upper left hand corner of the window
  298.         col  -  column of upper left hand corner of the window
  299.         width - INSIDE dimension (max value is 78, 80 if page = 1000)
  300.         height- INSIDE dimension (max value is 23, 25 if page = 1000)
  301.         atrib - attribute to be used IN the window
  302.         batrib- attribute to be used for the border
  303.  
  304.   wn_open is usually the first function called to create and use a
  305.   window.  wn_open dynamically allocates memory to save the area
  306.   defined by row, col, width, and height - saves the image, opens the
  307.   window and homes the logical cursor to row 0, col 0 of the window.
  308.   The window is now ready to be used by the various window management
  309.   routines.
  310.  
  311.   Attributes are defined in windows.h.
  312.  
  313. RETURNS
  314.  
  315.   wn = window handle or NULL if error
  316.  
  317. CAUTIONS
  318.  
  319.   Width and height are inside dimensions. If you want a window with a
  320.   work area of 10 rows and 5 columns, the width is 7 and the height is
  321.   12.
  322.  
  323.   The flashing cursor will not be displayed unless wn_sync() has been
  324.   called with a value of TRUE.
  325.  
  326. NAME
  327.  
  328.   wn_title -- place title on top border of window
  329.  
  330. USAGE
  331.  
  332.   wn_title(wn,title)
  333.   WINDOWPTR wn;
  334.   char *title;
  335.  
  336.         wn    - window handle
  337.         title - string pointer to title
  338.  
  339.   The title is displayed on the top border of the window using the
  340.   currently defined border attribute.  The cursor is positioned off
  341.   the screen after the title is written.
  342.  
  343. RETURNS
  344.  
  345.   TRUE if all is well, FALSE if the title is to large to fit on the
  346.   top border.
  347.  
  348. CAUTIONS
  349.  
  350.   None.
  351.  
  352. NAME
  353.  
  354. wn_close -- close window
  355.  
  356. USAGE
  357.  
  358.   wn_close(wn)
  359.   WINDOWPTR wn;
  360.  
  361.         wn - handle of a previously opened window.
  362.  
  363.   wn_close removes the window specified by wn and restores the screen
  364.   area under the window to its previous contents.  The memory
  365.   allocated by wn_open is returned to the free list.  The cursor is
  366.   positioned to where it was located prior to the wn_open call.
  367.  
  368. RETURNS
  369.  
  370.   NULL if error.
  371.  
  372. CAUTIONS
  373.  
  374.   None.
  375.  
  376.  
  377. NAME
  378.  
  379. wn_save -- save a screen image in memory
  380.  
  381. USAGE
  382.  
  383.   wn = (WINDOWPTR)wn_save(page, row, col, width, height)
  384.   int page, row, col, width, height;
  385.  
  386.         page -  always 0.
  387.         row  -  row of upper left hand corner of the window
  388.         col  -  column of upper left hand corner of the window
  389.         width - INSIDE dimension (max value is 78)
  390.         height- INSIDE dimension (max value is 23)
  391.  
  392.   wn_save can be used to save areas of the screen for purposes other
  393.   than windows.
  394.  
  395.   Memory for the screen image is dynamically allocated.
  396.  
  397. RETURNS
  398.  
  399.   wn = window handle or NULL if error
  400.  
  401. CAUTIONS
  402.  
  403.   The window handle returned by wn_save should only be used with
  404.   wn_restore, use with other routines could produce unpredictable
  405.   results.
  406.  
  407. NAME
  408.  
  409.   wn_restore -- restore a saved screen image from memory
  410.  
  411. USAGE
  412.  
  413.   wn_restore(wn)
  414.   WINDOWPTR wn;
  415.  
  416.         wn - handle of previously wn_save(ed) window.
  417.  
  418.   Restores the screen image corresponding to the window handle wn,
  419.   allocated memory is returned to the free list.
  420.  
  421. RETURNS
  422.  
  423.   NULL if error.
  424.  
  425. CAUTIONS
  426.  
  427.   This function should only be used with window handles obtained from
  428.   wn_save.
  429.  
  430.  
  431. NAME wn_move(wn, row, col)
  432.  
  433. USAGE
  434.  
  435.   wn = (WINDOWPTR)wn_move(wn,row,col)
  436.  
  437.         wn -  handle of window to be moved
  438.         row - destination row
  439.         col - destination column
  440.  
  441.   Moves the window corresponding to wn to a new location.  The cursor
  442.   is positioned off the screen after the call.
  443.  
  444. RETURNS
  445.  
  446.   New window handle or NULL if error.
  447.  
  448. CAUTIONS
  449.  
  450.   wn_move returns a new value for the window handle.  Failure to
  451.   invoke this function in the as outlined under usage will produce
  452.   unpredictable results.
  453.  
  454. NAME
  455.  
  456.   wn_locate -- locate (position) cursor in window
  457.  
  458. USAGE
  459.  
  460.   wn_locate(wn, row, col)
  461.   WINDOWPTR wn;
  462.   int row, col;
  463.  
  464.         wn  - window handle
  465.         row - row to position to (relative to window origin)
  466.         col - column to position to (relative to window origin)
  467.  
  468.   Position the cursor to the row and column specified.  Row and
  469.   Column values are relative to the origin of the window (0,0
  470.   locates the cursor in the upper left hand corner of the window
  471.   referenced by wn).
  472.  
  473. RETURNS
  474.  
  475.   Nothing.
  476.  
  477. CAUTIONS
  478.  
  479.   Values of row & col are not checked.
  480.  
  481. NAME
  482.  
  483.   wn_printf -- window printf
  484.  
  485. USAGE
  486.  
  487.   wn_printf(wn, cs, args)
  488.   WINDOWPTR wn;
  489.   char *cs;
  490.   ?? arg1 ... argn;
  491.  
  492.         wn   - window handle
  493.         cs   - format control string
  494.         args - argument list
  495.  
  496.   printf function for windows!
  497.  
  498. RETURNS
  499.  
  500.   Nothing.
  501.  
  502. CAUTIONS
  503.  
  504.   None.
  505.  
  506. NAME
  507.  
  508.   wn_puts -- put string to window (high speed)
  509.  
  510. USAGE
  511.  
  512.   wn_puts(wn, row, col, string)
  513.   WINDOWPTR wn;
  514.   int row, col;
  515.   char *string;
  516.  
  517.         wn -    window handle
  518.         row -   row to print the string at
  519.         col -   column to print the string at
  520.         string- the string to print
  521.  
  522.   Row and Col are relative to the origin of the window.
  523.  
  524.   The cursor is displayed only if wn_synflg has been called with
  525.   a value of TRUE.
  526.  
  527. RETURNS
  528.  
  529.   NULL if error (string to large, row/col out of range)
  530.  
  531. CAUTIONS
  532.  
  533.   wn_puts writes the string directly to the video ram. Tabs, line
  534.   feeds, carriage returns and other control characters are not
  535.   filtered or processed in any way.
  536.  
  537.   Range checks are not performed to insure the specified string can be
  538.   contained in the window.
  539.  
  540.  
  541. NAME
  542.  
  543.   wn_putsa -- put string and attribute to window (high speed)
  544.  
  545. USAGE
  546.  
  547.   wn_puts(wn, row, col, string, atrib)
  548.   WINDOWPTR wn;
  549.   int row, col;
  550.   char *string;
  551.   int atrib;
  552.  
  553.         wn -    window handle
  554.         row -   row to print the string at
  555.         col -   column to print the string at
  556.         string- the string to print
  557.         atrib - attribute to be used with string
  558.  
  559.   Row and Col are relative to the origin of the window.
  560.  
  561.   The cursor is displayed only if wn_synflg has been called with
  562.   a value of TRUE.
  563.  
  564. RETURNS
  565.  
  566.   NULL if error (string to large, row/col out of range)
  567.  
  568. CAUTIONS
  569.  
  570.   wn_puts writes the string directly to the video ram. Tabs, line
  571.   feeds, carriage returns and other control characters are not
  572.   filtered or processed in any way.
  573.  
  574.   Range checks are not performed to insure the specified string can be
  575.   contained in the window.
  576.  
  577. NAME
  578.  
  579.   wn_insrow - insert row in window
  580.  
  581. USAGE
  582.  
  583.   wn_insrow(wn, row)
  584.   WINDOWPTR wn;
  585.   int row;
  586.  
  587.         wn -  window handle
  588.         row - row at which a line is to be inserted
  589.  
  590.   Row is relative to the origin of the window.  All lines below the
  591.   row specified are scrolled down.  The currently defined window
  592.   attribute is used to clear the lines inserted.
  593.  
  594. RETURNS
  595.  
  596.   Nothing.
  597.  
  598. CAUTIONS
  599.  
  600.   None.
  601.  
  602. NAME
  603.  
  604.  wn_delrow - delete row from window
  605.  
  606. USAGE
  607.  
  608.   wn_delrow(wn, row)
  609.   WINDOWPTR wn;
  610.   int row;
  611.  
  612.         wn -  window handle
  613.         row - row at which a line is to be deleted
  614.  
  615.   Row is relative to the origin of the window.  All lines below the
  616.   row specified are scrolled up. The currently defined window
  617.   attribute is used to clear the lines inserted.
  618.  
  619. RETURNS
  620.  
  621.   Nothing.
  622.  
  623. CAUTIONS
  624.  
  625.   None.
  626.  
  627. NAME
  628.  
  629. wn_clr -- clear window
  630.  
  631. USAGE
  632.  
  633.   wn_clr(wn)
  634.   WINDOWPTR wn;
  635.  
  636.         wn - window handle
  637.  
  638.   The window corresponding to wn is cleared (mini clear screen).  The
  639.   currently defined window attribute is used to clear the interior of
  640.   the window.
  641.  
  642.   The windows virtual cursor is homed.
  643.  
  644. RETURNS
  645.  
  646.   Nothing.
  647.  
  648. CAUTIONS
  649.  
  650.   None.
  651.  
  652. NAME
  653.  
  654.  wn_color - set window & border color/attribute
  655.  
  656. USAGE
  657.  
  658.   wn_color(wn, atrib, batrib)
  659.   WINDOWPTR wn;
  660.   unsigned int atrib, batrib;
  661.  
  662.         wn -    window handle
  663.         atrib - attribute to be used for the window
  664.         batrib- attribute to be used for the border
  665.  
  666.   wn_color sets the attribute to be used for all subsequent operations
  667.   in the window.  The attribute byte contains the background specific
  668.   data in the upper 4 bits and the foreground specific data in the
  669.   lower 4 bits.  Color and bit definitions can be found in windows.h.
  670.   You can use a statement of the form:
  671.  
  672.                    atrib = (bground << 4 | fground);
  673.  
  674.     to set the attribute to the correct format.
  675.  
  676.   Attributes are defined in windows.h.
  677.  
  678. RETURNS
  679.  
  680.   Nothing.
  681.  
  682. CAUTIONS
  683.  
  684.   None.
  685.  
  686.  
  687. NAME
  688.  
  689. wn_wrap - set/clear line wrap
  690.  
  691. USAGE
  692.  
  693.   wn_wrap(wn, flag)
  694.   WINDOWPTR wn;
  695.   int flag;
  696.  
  697.         wn -   window handle
  698.         flag - wrap flag (TRUE or FALSE)
  699.  
  700.   Sets the line wrap flag for window functions.  If line wrap is true,
  701.   output that exceeds the width of a window is automatically placed on
  702.   the next line.  When the line wrap flag is false, output that
  703.   exceeds the width of the window is lost.
  704.  
  705. RETURNS
  706.  
  707.   Nothing.
  708.  
  709. CAUTIONS
  710.  
  711.   None.
  712.  
  713. NAME
  714.  
  715.  wn_sync -- set/clear cursor synchronization
  716.  
  717. USAGE
  718.  
  719.   wn_sync(wn, flag)
  720.   WINDOWPTR wn;
  721.   int flag;
  722.  
  723.         wn -   window handle
  724.         flag - synchronization flag (TRUE or FALSE)
  725.  
  726.   When wn_sync is called with a value of TRUE all subsequent text
  727.   output to the window will have a flashing (normal) cursor displayed
  728.   following the last character output. Calling wn_sync with a value of
  729.   false inhibits the cursor from physically advancing (it is always
  730.   logically advanced).
  731.  
  732. RETURNS
  733.  
  734.   Nothing.
  735.  
  736. CAUTIONS
  737.  
  738.   None.
  739.  
  740. NAME
  741.  
  742.  wn_dma - set/clear the write to video ram directly flag
  743.  
  744. USAGE
  745.  
  746.   wn_dma(flag)
  747.   int flag;
  748.  
  749.         flag - write to video ram flag (TRUE or FALSE).
  750.  
  751.   The windowing routines assume that your video card supports direct
  752.   access to the video ram (normal for monochrome monitors).  However,
  753.   if you are using a standard IBM color card or you experience snow
  754.   when you write to your windows use wn_dma to set the write to video
  755.   ram flag to FALSE.
  756.  
  757. RETURNS
  758.  
  759.   Nothing.
  760.  
  761. CAUTIONS
  762.  
  763.   None.
  764.  
  765. NAME
  766.  
  767.   wn_fixcsr - update window cursor position
  768.  
  769. USAGE
  770.  
  771.   wn_fixcsr(wn)
  772.   WINDOWPTR wn;
  773.  
  774.         wn - window handle
  775.  
  776.   wn_fixcsr is a companion routine to wn_sync.  Causes the physical
  777.   cursor to be placed at the logical cursor location.  It is typically
  778.   called after wn_sync has been called to disable cursor
  779.   synchronization.  wn_fixcsr does not alter the state of the windows
  780.   cursor synchronization flag.
  781.  
  782. RETURNS
  783.  
  784.   Nothing.
  785.  
  786. CAUTIONS
  787.  
  788.   None.
  789.  
  790. NAME
  791.  
  792.   wn_boxset -- set box drawing character set
  793.  
  794. USAGE
  795.  
  796.   wn_boxset(ul, ur, tb, sd, ll, lr);
  797.   int ul, ur, tb, sd, ll, lr;
  798.  
  799.     ul - upper left corner character
  800.     ur - upper right corner character
  801.     tb - top/bottom line character
  802.     sd - left/right side character
  803.     ll - lower left corner character
  804.     lr - lower right corner character
  805.  
  806.   wn_boxset set the characters to be used to frame all future windows.
  807.  
  808. RETURNS
  809.  
  810.   Nothing.
  811.  
  812. CAUTIONS
  813.  
  814.   None.
  815.  
  816. NAME
  817.  
  818.   wn_dborder -- draw (replace) border on window
  819.  
  820. USAGE
  821.  
  822.   wn_dborder(wn, ul, ur, tb, sd, ll, lr);
  823.   WINDOWPTR wn;
  824.   int ul, ur, tb, sd, ll, lr;
  825.  
  826.     wn - window handle
  827.     ul - upper left corner character
  828.     ur - upper right corner character
  829.     tb - top/bottom line character
  830.     sd - left/right side character
  831.     ll - lower left corner character
  832.     lr - lower right corner character
  833.  
  834.   wn_dborder redraws the exiting border with the characters define.
  835.  
  836.   The currently defined border attribute is used when drawing the
  837.   border.
  838.  
  839. RETURNS
  840.  
  841.   Nothing.
  842.  
  843. CAUTIONS
  844.  
  845.   None.
  846.  
  847. NAME
  848.  
  849.   _getca -- get character and attribute
  850.  
  851. USAGE
  852.  
  853.   unsigned int _getca(page, row, col)
  854.   int page, row, col;
  855.  
  856.  
  857.         page - video page #
  858.         row -  row value (0-24)
  859.         col -  column value (0-79)
  860.  
  861.   _getca fetches the character and attribute at the screen coordinates
  862.   defined by row and column.  _getca is a general purpose routine and
  863.   can be used outside of the window environment.
  864.  
  865. RETURNS
  866.  
  867.   The character and attribute as an unsigned int.  The attribute is
  868.   in the upper byte, the character is in the lower byte.
  869.  
  870. CAUTIONS
  871.  
  872.   None.
  873.  
  874. NAME
  875.  
  876.   _putca -- put character and attribute at row,column
  877.  
  878. USAGE
  879.  
  880.   _putca(page, atch, row, col);
  881.   int page, row, col;
  882.   unsigned atch;
  883.  
  884.         page - video page #
  885.         atch - attribute and character
  886.                  attribute in high order byte
  887.                  character in low order byte
  888.         row -  row position for character (0-24)
  889.         col -  column position for character (0-79)
  890.  
  891.   _putch is a general purpose routine that can be used outside of the
  892.   window environment.
  893.  
  894. RETURNS
  895.  
  896.   Nothing.
  897.  
  898. CAUTIONS
  899.  
  900.   None.
  901.  
  902. NAME
  903.  
  904.   _vidblt -- video block transfer (COLOR CARD ONLY)
  905.  
  906. USAGE
  907.  
  908.   _vidblt(sseg, soff, dseg, doff, n);
  909.   unsigned sseg, soff, dseg, doff;
  910.   int n;
  911.  
  912.         sseg - source segment
  913.         soff - source offset
  914.         dseg - destination segment
  915.         doff - destination offset
  916.         n -    number of bytes to BLT
  917.  
  918.   _vidblt is similar to the lattice movedata() function except that it
  919.   waits for the video retrace signal before performing the block
  920.   transfer.
  921.  
  922.   _vidblt is a general purpose function that can be used outside of
  923.   the window environment.
  924.  
  925. RETURNS
  926.  
  927.   Nothing
  928.  
  929. CAUTIONS
  930.  
  931.   For use in color systems only.
  932.  
  933. NAME
  934.  
  935.   v_spage -- set active display page
  936.  
  937. USAGE
  938.  
  939.   v_spage(page)
  940.   int page;
  941.  
  942.         page - video page to switch the display to
  943.  
  944.   v_spage is a general purpose routine that can be used outside of the
  945.   window environment.
  946.  
  947. RETURNS
  948.  
  949.   Nothing.
  950.  
  951. CAUTIONS
  952.  
  953.   None.
  954.  
  955. NAME
  956.  
  957.   v_cls --  clear entire video screen
  958.  
  959. USAGE
  960.  
  961.   v_cls(atrib)
  962.   int atrib;
  963.  
  964.         atrib - attribute to be used
  965.  
  966.   v_cls is a general purpose routine that can be used outside of the
  967.   window environment.
  968.  
  969.   Attributes are defined in windows.h.
  970.  
  971. RETURNS
  972.  
  973.   Nothing.
  974.  
  975. CAUTIONS
  976.  
  977.   None.
  978.  
  979. NAME
  980.  
  981.   v_smode -- set video mode
  982.  
  983. USAGE
  984.  
  985.   v_smode(mode)
  986.   int mode;
  987.  
  988.         mode - mode to set the display to
  989.  
  990.   v_smode is a general purpose routine which can be used outside of
  991.   the window environment.
  992.  
  993.   Modes are defined in windows.h.
  994.  
  995. RETURNS
  996.  
  997.   Nothing.
  998.  
  999. CAUTIONS
  1000.  
  1001.   None.
  1002.  
  1003. NAME
  1004.  
  1005.  v_wca -- write character and attribute
  1006.  
  1007. USAGE
  1008.  
  1009.   v_wca(page, char, atrib, count);
  1010.   int page, char, atrib, count;
  1011.  
  1012.         page -  video page #
  1013.         char -  character to write
  1014.         atrib - attribute to use
  1015.         count - number of times two repeat
  1016.  
  1017.   v_wca is a general purpose routine that can be used outside of the
  1018.   window environment. It writes the character defined by char count
  1019.   times starting at the current cursor location.
  1020.  
  1021.   Attributes are defined in windows.h.
  1022.  
  1023. RETURNS
  1024.  
  1025.   Nothing.
  1026.  
  1027. CAUTIONS
  1028.  
  1029.   None.
  1030.  
  1031. NAME
  1032.  
  1033.  v_locate - locate (position) cursor
  1034.  
  1035. USAGE
  1036.  
  1037.   v_locate(page, row, col);
  1038.   int page, row, col;
  1039.  
  1040.         page - video page #
  1041.         row  - row to position to
  1042.         col  - column to position to
  1043.  
  1044.   v_locate is a general purpose routine that can be used outside of
  1045.   the window environment.
  1046.  
  1047.   Row and Col are range checked.  You can not position the cursor off
  1048.   the screen.
  1049.  
  1050. RETURNS
  1051.  
  1052.   Nothing.
  1053.  
  1054. CAUTIONS
  1055.  
  1056.   None.
  1057.  
  1058. NAME
  1059.  
  1060.   v_hidec -- hide cursor
  1061.  
  1062. USAGE
  1063.  
  1064.   v_hidec();
  1065.  
  1066.   The physical cursor is located off the screen.
  1067.  
  1068.   This function does not affect any virtual cursor coordinates, it
  1069.   simply hides the physical cursor from view.
  1070.  
  1071. RETURNS
  1072.  
  1073.   Nothing.
  1074.  
  1075. CAUTIONS
  1076.  
  1077.   None.
  1078.  
  1079. NAME
  1080.  
  1081.   v_sctype -- set cursor type (style)
  1082.  
  1083. USAGE
  1084.  
  1085.   v_sctype(type, start, end);
  1086.   int type, start, end;
  1087.  
  1088.         type -  cursor style code (0=hidden, 1=normal, 2=slow, 3=fast)
  1089.         start - start scan line
  1090.         end -   end scan line
  1091.  
  1092.   As an example, to set a slow flashing block style cursor invoke this
  1093.   function with type=1, start=6, and end=12 (color card).
  1094.  
  1095. RETURNS
  1096.  
  1097.   Nothing.
  1098.  
  1099. CAUTIONS
  1100.  
  1101.   None.
  1102.  
  1103. NAME
  1104.  
  1105.   v_sapu -- scroll active display page up
  1106.  
  1107. USAGE
  1108.  
  1109.   v_sapu(nl, rul, cul, rlr, clr, atrib);
  1110.   int nl, rul, cul, rlr, clr, atrib;
  1111.  
  1112.         nl  - number of lines to scroll
  1113.         rul - row of upper left hand corner of scroll area
  1114.         cul - column of upper left hand corner of scroll area
  1115.         rlr - row of lower right corner of scroll area
  1116.         clr - column of lower right corner of scroll area
  1117.         atrib - attribute to be used for blanking
  1118.  
  1119.   v_sapu is a general purpose routine that can be used outside of the
  1120.   window environment.
  1121.  
  1122.   A value of 0 for nl scrolls (blanks) the entire area.  To clear the
  1123.   entire video screen use v_sapu(0, 0, 0, 24, 79, NORMAL).
  1124.  
  1125.   Attributes are defined in windows.h.
  1126.  
  1127. RETURNS
  1128.  
  1129.   Nothing.
  1130.  
  1131. CAUTIONS
  1132.  
  1133.   None.
  1134.  
  1135. NAME
  1136.  
  1137.   v_sapd -- scroll active display page down
  1138.  
  1139. USAGE
  1140.  
  1141.   v_sapd(nl, rul, cul, rlr, clr, atrib);
  1142.   int nl, rul, cul, rlr, clr, atrib;
  1143.  
  1144.         nl  - number of lines to scroll
  1145.         rul - row of upper left hand corner of scroll area
  1146.         cul - column of upper left hand corner of scroll area
  1147.         rlr - row of lower right corner of scroll area
  1148.         clr - column of lower right corner of scroll area
  1149.         atrib - attribute to be used for blanking
  1150.  
  1151.   v_sapd is a general purpose routine that can be used outside of the
  1152.   window environment.
  1153.  
  1154.   A value of 0 for nl scrolls (blanks) the entire area.  To clear the
  1155.   entire video screen use v_sapd(0, 0, 0, 24, 79, NORMAL).
  1156.  
  1157.   Attributes are defined in windows.h.
  1158.  
  1159. RETURNS
  1160.  
  1161.   Nothing.
  1162.  
  1163. CAUTIONS
  1164.  
  1165.   None.
  1166.  
  1167. NAME
  1168.  
  1169.   v_rcpos -- return current cursor position
  1170.  
  1171. USAGE
  1172.  
  1173.   v_rcpos(page, row, col);
  1174.   int page;
  1175.   int *row, *col;       /* POINTERS */
  1176.  
  1177.         page - video page #
  1178.         *row - pointer to int to receive row value
  1179.         *col - pointer to int to receive column value
  1180.  
  1181.   v_rcpos is a general purpose routine that can be used outside of the
  1182.   window environment.
  1183.  
  1184. RETURNS
  1185.  
  1186.   Nothing.
  1187.  
  1188. CAUTIONS
  1189.  
  1190.   None.
  1191.  
  1192. NAME
  1193.  
  1194.   v_rcvs - return current video state
  1195.  
  1196. USAGE
  1197.  
  1198.   v_rcvs(page, vm, cols);
  1199.   int *page, *vm, *cols;        /* POINTERS */
  1200.  
  1201.         *page - pointer to int to receive current video page #
  1202.         *vm   - pointer to int to receive current video mode
  1203.         *cols - pointer to int to receive current screen width
  1204.  
  1205.   v_rcvs is a general purpose routine that can be used outside of the
  1206.   window environment.
  1207.  
  1208.   Modes are defined in windows.h.
  1209.  
  1210. RETURNS
  1211.  
  1212.   Nothing.
  1213.  
  1214. CAUTIONS
  1215.  
  1216.   None.
  1217.  
  1218. NAME
  1219.  
  1220.   v_getch -- get keyboard character and scan code
  1221.  
  1222. USAGE
  1223.  
  1224.   v_getch();
  1225.  
  1226.   v_getch is a general purpose routine that can be used outside of the
  1227.   window environment.
  1228.  
  1229. RETURNS
  1230.  
  1231.   The character and scan code.  The character is in the low order byte,
  1232.   the scan code in the high order byte.
  1233.  
  1234. CAUTIONS
  1235.  
  1236.   None.
  1237.  
  1238. NAME
  1239.  
  1240.   v_kstat -- get keyboard status
  1241.  
  1242. USAGE
  1243.  
  1244.   v_kstat();
  1245.  
  1246.   v_kstat is a general purpose routine that can be used outside of the
  1247.   window environment.
  1248.  
  1249. RETURNS
  1250.  
  1251.   TRUE if a character is available, FALSE if not.
  1252.  
  1253. CAUTIONS
  1254.  
  1255.   None.
  1256.  
  1257. NAME
  1258.  
  1259.   v_kflush -- flush keyboard buffer
  1260.  
  1261. USAGE
  1262.  
  1263.   v_kflush();
  1264.  
  1265.   v_kflush clears the keyboard buffer of any pending input.
  1266.  
  1267. RETURNS
  1268.  
  1269.   Nothing.
  1270.  
  1271. CAUTIONS
  1272.  
  1273.   None.
  1274.  
  1275.          The Window BOSS Registration and Feedback Form
  1276.  
  1277.  
  1278.        Name________________________________________________
  1279.  
  1280.        Company_____________________________________________
  1281.  
  1282.        Address_____________________________________________
  1283.  
  1284.        City, State, Zip____________________________________
  1285.  
  1286.        Daytime telephone___________________________________
  1287.  
  1288. To register, send $50.00 (money order, personal check, call for
  1289. CASH COD - Connecticut State residents add 7.5% sales tax) to:
  1290.  
  1291.                      Star Guidance Consulting
  1292.                          273 Windy Drive
  1293.                    Waterbury, Connecticut 06705
  1294.  
  1295.      Likes, dislikes, features wanted, problems?  List below:
  1296.  
  1297.   ___________________________________________________________________
  1298.  
  1299.   ___________________________________________________________________
  1300.  
  1301.   ___________________________________________________________________
  1302.  
  1303.   ___________________________________________________________________
  1304.  
  1305.   ___________________________________________________________________
  1306.  
  1307.   ___________________________________________________________________
  1308.  
  1309.   ___________________________________________________________________
  1310.  
  1311.   ___________________________________________________________________
  1312.  
  1313.   ___________________________________________________________________
  1314.  
  1315.   ___________________________________________________________________
  1316.  
  1317.   ___________________________________________________________________
  1318.  
  1319.  
  1320.                    This disk copy provided as a service of
  1321.  
  1322.                         The Public (Software) Library
  1323.                            the software library of
  1324.                      The Houston Area League of PC Users
  1325.  
  1326.          Program disks are available for as little as $2 each and a
  1327.          20-page monthly newsletter reviewing all the latest public
  1328.          domain and shareware software plus a listing of all the
  1329.          disks in our library is available for just $12 a year.
  1330.  
  1331.                         The Public (Software) Library
  1332.                                 P.O.Box 61565
  1333.                               Houston, TX 77208
  1334.  
  1335.  
  1336.